const baseUrl = "http://192.168.0.115:8888";

/*
@params: {
  url,接口
  method,请求方式
  data,发送数据
  header,请求头
}
*/

function request(params) {
  // 加载中
  // uni.showLoading({
  //   title: "加载中"
  // })
  // console.log(params);
  // 对登陆后发送的请求进行判断
  let token = uni.getStorageSync('token');
  if (!token) {
    // 关闭页面 跳转至登录页
    uni.reLaunch({
      url: '/pages/login/index'
    });
    // 移除所有登陆时储存的信息
    uni.clearStorageSync();

    return new Promise((resolve, reject) => {
      wx.request({
        ...params,
        fail(err) {
          reject(err => {
            console.log(err)
          });
        },
        complete() {
          // uni.hideLoading();
        }
      })

    })
  }
  params.header.token = token;
  return new Promise((resolve, reject) => {
    wx.request({
      ...params,
      success(res) {
        switch (res.statusCode) {
          case 200:
            resolve(res.data)
            break
          case 400:
            uni.showToast({
              title: '请求错误',
              icon: 'none',
              duration: 2000
            });
            break
          case 401:
            uni.showToast({
              title: '授权已过期,请重新登陆',
              icon: 'none',
              duration: 2000
            });
            uni.clearStorageSync();
            uni.reLaunch({
              url: '/pages/login/index'
            });
            break
          case 403:
            uni.showToast({
              title: '拒绝访问',
              icon: 'none',
              duration: 2000
            });
            break
          case 404:
            uni.showToast({
              title: '请求地址出错',
              icon: 'none',
              duration: 2000
            });
            break
          case 408:
            uni.showToast({
              title: '请求超时',
              icon: 'none',
              duration: 2000
            });
            break
          case 500:
            uni.showToast({
              title: '服务器内部错误',
              icon: 'none',
              duration: 2000
            });
            break
          case 501:
            uni.showToast({
              title: '服务未实现',
              icon: 'none',
              duration: 2000
            });
            break
          case 502:
            uni.showToast({
              title: '网关错误',
              icon: 'none',
              duration: 2000
            });
            break
          case 503:
            uni.showToast({
              title: '服务不可用',
              icon: 'none',
              duration: 2000
            });
            break
          case 504:
            uni.showToast({
              title: '网关超时',
              icon: 'none',
              duration: 2000
            });
            break
          case 505:
            uni.showToast({
              title: 'HTTP版本不受支持',
              icon: 'none',
              duration: 2000
            });
            break
          default:
        }
      },
      fail(err) {
        reject(err => {
          // console.log("reject", err)
        });
      },
      complete() {
        // uni.hideLoading();
      }
    })

  })
}

// get请求
function get(params) {
  // 处理请求参数
  params.url = baseUrl + params.url;
  params.method = 'GET';
  params.header = params.header || {};
  return request(params);
}

// post请求
function post(params) {
  // 处理请求参数
  params.url = baseUrl + params.url;
  params.method = 'POST';
  params.header = params.header || {};
	
  return request(params);
}

export default {
  baseUrl,
  request,
  get,
  post
}